package usually;
//3. 无重复字符的最长子串
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;

public class Num3_lengthOfLongestSubstring {
    public int lengthOfLongestSubstring(String s) {

        if (s.length()==0){
            return 0;
        }
        int res = 0;
        int temp = 0;//保存前一个最长字串
        Map<Character , Integer> map = new HashMap<>();//保存字符和下标
        for (int j = 0; j < s.length(); j++) {
            int i = map.getOrDefault(s.charAt(j) , -1);
            map.put(s.charAt(j) , j);
            temp = j - i > temp ? temp + 1 : j - i ;
            res = Math.max(temp , res);
        }
        return res;
    }

}
